﻿<p>每个Linux登入的使用者至少都会取得两个ID ，一个是使用者  ID (User ID ，简称 UID)、
    一个是群组 ID (Group ID ，简称 GID)。 </p>

<p>用户输入账号密码进行登录的过程：</p>
<ol>
    <li>
        先找寻 /etc/passwd 里面是否有你输入的账号？如果没有则跳出，如果有的话则将该账号对应的
        UID 与 GID (在 /etc/group 中) 读出来，另外，该账号的家目录与 shell 设定也一并读出；
    </li>
    <li>
        再来则是核对密码表。这时 Linux 会进入 /etc/shadow 里面找出对应的账号与 UID，然后核
        对一下你刚刚输入的密码与里头的密码是否相符？
    </li>
    <li>如果一切都 OK 的话，就进入 Shell 控管的阶段</li>
</ol>
<p>Linux账号相关的两个相当重要的档案，一个是/etc/passwd用来管理账号，另一个则是专门管理密码相关数据的 /etc/shadow，这两个档案相当重要。</p>

<h2 id="etcpasswd">/etc/passwd</h2>
@Html.Partial("~/Views/shell/user/_etcpasswd.cshtml")

<h2 id="etcshadow">/etc/shadow</h2>
@Html.Partial("~/Views/shell/user/_etcshadow.cshtml")

<h2 id="etcgroup">/etc/group</h2>
@Html.Partial("~/Views/shell/user/_etcgroup.cshtml")

<strong>用户账号：</strong>
<ul>
    <li>useradd:新增用户账号</li>
    <li>usermod:修改用户账号</li>
    <li>userdel:删除用户账号</li>
    <li>passwd:设定用户密码</li>
    <li>chage:显示或修改用户密码详情。</li>
    <li>finger:显示用户信息。</li>
    <li>chfn:改变finger指令显示的信息。</li>
    <li>chsh:更换登入系统时使用的shell。</li>
    <li>id:显示用户的ID，以及所属群组的ID。</li>
</ul>

<h2 id="useradd">useradd</h2>
@Html.Partial("~/Views/shell/user/_useradd.cshtml")

<h2 id="passwd">passwd</h2>
@Html.Partial("~/Views/shell/user/_passwd.cshtml")

<h2 id="chage">chage</h2>
@Html.Partial("~/Views/shell/user/_chage.cshtml")

<h2 id="usermod">usermod</h2>
@Html.Partial("~/Views/shell/user/_usermod.cshtml")

<h2 id="userdel">userdel</h2>
@Html.Partial("~/Views/shell/user/_userdel.cshtml")

<h2 id="finger">finger</h2>
@Html.Partial("~/Views/shell/user/_finger.cshtml")

<h2 id="chfn">chfn</h2>
@Html.Partial("~/Views/shell/user/_chfn.cshtml")

<h2 id="chsh">chsh</h2>
@Html.Partial("~/Views/shell/user/_chsh.cshtml")

<h2 id="id">id</h2>
@Html.Partial("~/Views/shell/user/_id.cshtml")

<strong>用户群组管理：</strong>
<ul>
    <li>groupadd:新增用户群组</li>
    <li>groupmod:修改用户群组</li>
    <li>groupdel:删除用户群组</li>
    <li>gpasswd:管理群组</li>
</ul>

<h2 id="groupadd">groupadd</h2>
@Html.Partial("~/Views/shell/user/_groupadd.cshtml")

<h2 id="groupmod">groupmod</h2>
@Html.Partial("~/Views/shell/user/_groupmod.cshtml")

<h2 id="groupdel">groupdel</h2>
@Html.Partial("~/Views/shell/user/_groupdel.cshtml")

<h2 id="gpasswd">gpasswd</h2>
@Html.Partial("~/Views/shell/user/_gpasswd.cshtml")

<strong>用户身份切换：</strong>
<ul>
    <li>su:切换身份</li>
    <li>sudo:使用其他身份</li>
    <li>/etc/sudoers:关键档案</li>
</ul>


<h2 id="su">su</h2>
@Html.Partial("~/Views/shell/user/_su.cshtml")

<h2 id="sudo">sudo</h2>
@Html.Partial("~/Views/shell/user/_sudo.cshtml")

<h2 id="etcsudoers">/etc/sudoers</h2>
@Html.Partial("~/Views/shell/user/_etcsudoers.cshtml")
